To protect software manufacturers' copyrights in software sold to the public, manufacturer's commonly license software to the purchaser. Additionally, in many applications the purchaser has elected to pay only for certain features of software which must be selectively enabled by the manufacturer. In particular, each release or version of a particular software package for a customer premise telecommunication switching system contains a large number of features, and most customers elect to pay for only a subset of the total number of features. Features in a telecommunications switching system refer to certain specialized operations such as call hold, call transfer, automatic route selection, etc. An ongoing problem in the art is to prevent newer versions of software from being pirated and used on unauthorized hardware and/or otherwise authorized customers from actuating features for which the customer has not paid.
A number of methods have been developed to protect against such unauthorized use of software.
In one method, passwords, that allow only authorized individuals to have access to the telecommunication switching system, are used to control enablement of features or new software versions. This method is inflexible and inconvenient for customers as an authorized technician must be scheduled to enable the features, can be circumvented by a person misappropriating or misusing the password, and does not provide for periodic license verification during system operation.
In another method, a key is required to enable the software program. This solution does not solve the copying problem because the key is normally printed on the packaging of the software, and anyone can install the software as many times as they wish, however illegal it may be.
In yet another method, a special piece of hardware or “dongle” is used. The dongle is a special piece of hardware that connects to the serial or parallel port of the computer. The software running on the computer sends a random number to the dongle. The dongle performs a secret computation and returns a result. The software makes a like computation; if the two computations match, the software continues to run. To work satisfactorily, the response must include feature and version information. The use of the dongle is cumbersome when it fails. In the event that the dongle fails, the system is down until a new dongle can be physically obtained on site. Also, once made the dongle is fixed. If it was used for feature activation, a new dongle is required for each additional feature that is purchased.
A further method is to freely distribute CD-ROM disks. When the CD-ROM is inserted into a computer, the computer automatically connects to a remote server via the Internet or a dial-up connection to receive a machine-specific key. The key unlocks the software so that it can be utilized on that computer. The remote server also obtains the necessary payment information from the computer user. This method does not function well for a telecommunication switching system since it does not provide for the authorization to use different features of the same software application nor is it dependent on the version of the software being requested. In addition, it does not provide the necessary authorization of personnel to make such a request.
Another method requires the software, upon installation or first execution, to record serial number information (e.g., medium access control or MAC address) regarding predetermined hardware components of the computer system. The software permits the user a specified number of hardware serial number changes before it disables itself. This method, though effective, is unfair to users who, over time, legitimately exceed the number of permitted serial number changes through reuse of the software on a number of different systems and/or periodic replacement of some of the predetermined hardware components in a given system to upgrade or maintain the system.
The drawbacks of the various licensing methods discussed above are addressed by the licensing methods discussed in detail in copending U.S. patent applications entitled “Securing Feature Activation in a Telecommunication System”, Ser. No. 09/357,679, filed Jul. 20, 1999, to Serkowski; “License Modes in Call Processing”, Ser. No. 10/232,508, filed Aug. 30, 2002; “Remote Feature Activator Feature Extraction”, Ser. No. 10/232,906, filed Aug. 30, 2002; “Flexible License File Feature Controls”, Ser. No. 10/231,999; “License File Serial Number Tracking”, Ser. No. 10/232,507; “Licensing Duplicated Systems”, Ser. No. 10/231,957; and “Software Licensing for Spare Processors”, Ser. No. 10/232,647, each of which is incorporated herein by this reference. In the methods disclosed in these patent applications, a valid license file is required to run a computational component. The license file contains a serial number that must be present on the hardware that is to execute the licensed software for the license to be valid and the software to be executable. In telecommunication applications, for example, the serial number of the control processor must be in the license file for the control processor to run the licensed software.
The methodology of the latter patent application provides for three licensing modes when a defined condition(s) is found to exist, namely the LICENSE-NORMAL mode (in which a license manager has found, inter alia, that a valid license is properly installed, the license file contains a serial number that matches the serial number of the processor, the software name and version/release of the telecommunication application matches that in the license file, the license has not expired, the offer category in the feature mask matches the translation, and the feature usage in translation does not exceed limits in the feature mask), the LICENSE-ERROR mode (in which the license manager has found, inter alia, one or more of the following to be true: no valid license is properly installed, the license file contains a serial number that does not match the serial number of the processor, the license has expired, and the feature usage exceeds limits), and in the NO-LICENSE mode (in which the license manager has found that (i) a license error timer to be expired and one or more of the following to be true: there is no valid license installed on the system, the feature usage exceeds limits, the license file contains a serial number that does not match the serial number of the processor, and the license is expired, (ii) the name and/or version of the telecommunication application to not match the name and/or version in the license file; and/or (iii) the offer category in the feature mask to not match translation. The LICENSE-ERROR and NO-LICENSE modes may be returned to the LICENSE-NORMAL mode by correction of the errors that caused the former two modes to be triggered.
The license modes have differing operational consequences. In the LICENSE-NORMAL mode, normal call processing is performed. In the LICENSE-ERROR mode, normal call processing is performed but only for a predetermined period of time or grace period. The license error timer is used to monitor the grace period. In the NO-LICENSE mode, only limited call processing is permitted.
A drawback of the above licensing methodologies is that the telecommunication system can enter the NO-LICENSE mode without notification of appropriate personnel of the operator. Although entry into the LICENSE-ERROR mode activates a number of warnings to notify the operator of the mode change, it is still possible that the warnings will not be brought to the attention of authorized personnel in time for the errors to be corrected. An unexpected loss of call processing in call-dependent businesses can have severe consequences for the business, including lost employee productivity and business opportunities.